因為有不少要實作的功能是基於行動逢甲既有的功能,但這些 API 並沒有公開,更不會有使用說明,所以需要觀察行動逢甲 APP 的網路行為來獲取相關資訊。
因為現在的應用程式大部分都是採用 HTTP(S) 傳輸,所以先從分析 HTTP 流量開始,這裡使用 Burp Suite,它是用來做網頁滲透測試的工具包,類似的還有 Zap、Fiddler 和 Charles,這類工具能分析流量的原理是架設了一個 Proxy ,並讓流量通過 Proxy 以達成分析與攔截修改。
Burp Suite 官方網站:
https://portswigger.net/burp/
Burp Suite Community Edition 2022.9 官方下載連結:
https://portswigger.net/burp/releases/download?product=community&version=2022.9&type=Jar
用手機瀏覽器開啟在 Burp 監聽的 IP 和 Port,網頁右上角有個 CA Certificate 按鈕,點擊下載 Burp 的 CA 憑證,把副檔名修改成 .crt
憑證管理的設定路徑是
Settings > Security > Encrytion & credentials
手動匯入 CA 憑證
選擇剛才改完副檔名的 cacert.der.crt
匯入成功的話可以在 User Credentials 頁面看到已匯入的憑證
Android 的 Proxy 設定比較隱密,躲在個別 WiFi 設定中
展開 Advanced options 就能看到 proxy 設定
選擇 manual,輸入 IP 和 Port 後按下 save
(範例為 10.1.1.100:8081)
設定好 Burp,手機匯入 Burp 的 CA,也修改完 WiFi 的 proxy 設定,所有 APP 變成無法連線?
因為 HTTPS 有憑證機制,而 Burp 為了要解密 HTTPS 流量,使用自己 CA 簽發的憑證替換掉原有憑證,所以要在使用者裝置上加入 Burp 的 CA 憑證,讓裝置信任 Burp 替換掉的憑證。
這裡會遇到一個問題:從 Android 7 開始,應用程式預設不信任使用者安裝的憑證。
最直覺的想法就是使用 Android 6 以下的裝置,但逃避逃不了一輩子,總是會遇到只能在新版本裝置上運行的 APP,不太合適。
既然不信任使用者安裝的憑證,那就把使用者憑證移進系統內建!
Magisk 模組 Move Certificates,它會幫我們把已安裝的使用者憑證移進去,安裝完模組記得重啟。
讓 CA 憑證受信任後,成功觀察到行動逢甲 APP 的流量。